Circuit designers can create a design using a graphical tool to generate circuit components. In a parameterized cell (pcell), a designer selects parameters to describe features of electronic components for a design of an integrated circuit. The pcell tool can then automatically generate multiple representations of the electronic components of the pcell based on the parameters. The parameterized data specified by the user minimizes the effort of data entry and editing in the design tool, and also reduces design rule violations.
Any kind of layout data can be parameterized. For example, with a transistor pcell, the length, width, number of gate segments, and other design elements of the transistor, can be realized by simply inserting or changing one or more parameter values. For bipolar designs, parameterized data can include shapes such as arcs and circles. Design data can include text, and the location of the text may be relative to a virtual shape. Also, pieces of parameterized data can automatically appear, disappear, or replicate as a condition of another parameter.
To generate a pcell instance, a library name, cell name, instance name, orientation, and the type and values of parameters are specified. The pcell includes a formal parameter table where each row of the table contains a pcell parameter name, parameter type (such as float, integer, Boolean, or string), and a default value. The parameters for a resistor may include L, which specifies a length of a resistor segment; fingers, which specifies the number of fingers of the resistor; and q, which specifies a length of first and last connecting wires, for example.
The parameters may also be used to set a size of each parameterized cell shape (pshape). The parameters may be included in an expression having constants, formal parameters, and design rule identifiers. If a length or a width of a rectangle is not provided, a value may be found by searching through design rules. This may also be done to find values for a width of a path, a sub-path, or an arc. For example, a design rule may select the parameter for a poly width based on a design rule that determines minimum poly width.
A reference point is used to determine an initial location of a pcell. For example, a starting point of a pcell may be identified with specific coordinates, or a default starting point of (0, 0) may be used. The pshapes within a pcell can include alignment points such as, for example, vertices or a path centerline of a pshape, to align two pshapes in the pcell.
Traditional graphical tool systems draw the pcell according to its pcell parameters by executing code of a software program, such as SKILL code for example. The resulting pcell produced by the pcell code is considered as correct by definition. Moreover, if a parameter changes after this cell is created, the design system automatically triggers the recalculation of the shapes within the cell, and does so correctly (by definition). The pcell can then viewed from a higher level of the design hierarchy as a cell instance of the chip design.
However, the software program used to draw the pcell may have long or complicated algorithms which are inefficient. For example, if the pcell software program, when executed, references other pcell parameters, design rules, and connectivity models, drawing the pcell may be time consuming. Therefore, there is a need for an efficient method of drawing pcells.